Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. These techniques include solid modeling, wire-frame modeling, and surface modeling. Solid modeling techniques provide for topological 3D models, where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to the topological faces bounded by the edges. Wire-frame modeling techniques, on the other hand, can be used to represent a model as a collection of simple 3D lines, whereas surface modeling can be used to represent a model as a collection of exterior surfaces. CAD systems may combine these and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies.
CAD systems may also support two-dimensional (2D) objects, which are 2D representations of 3D objects. Two-dimensional and three-dimensional objects are useful during different stages of a design process. Three-dimensional representations of a model are commonly used to visualize a model in a physical context because the designer can manipulate the model in 3D space and can visualize the model from any conceivable viewpoint. Two-dimensional representations of a model are commonly used to prepare and formally document the design of a model. A 2D representation of the 3D model is referred to as a 2D drawing, or simply, a drawing. A 2D drawing contains one or more drawing views where each view illustrates the model in a specific orientation (e.g., top, front, or left view), or illustrates a detail or section view of the model. In general, the 2D drawing is used to communicate the design to a manufacturing engineer so that the physical object corresponding to the 2D drawing, and therefore, also corresponding to the 3D model, can be built.
Formally documenting a design includes annotating a CAD model using a set of geometric dimensioning formulations thereby enabling a design engineer to communicate the configuration of a part, a subassembly, or an assembly to a manufacturing engineer. The International Standards Organization (ISO) and the American Society of Mechanical Engineers (ASME), among others, establish design and manufacturing standards, which are uniform practices for stating and interpreting dimensioning data.
Annotating a 3D model or a 2D drawing that represents a 3D model in a manner that is clear, concise, and compliant to ASME, ISO, or other dimensioning and tolerancing standards can be an arduous task. Such annotating of 2D drawings may be one of the most tedious and time consuming CAD requirements, which becomes more complicated the more complex the CAD design.
In general, a dimension is a physical aspect or characteristic of an object. Examples of dimensions are height, length, and angle, each which have an orientation and measurement value. Representation or indication of such dimension in CAD drawings is by dimension annotations. A dimension annotation may be formed using dimension lines, text, angle of leader, etc., all of which can be referred to as dimension indicia.
Today, a design engineer may create dimension annotations using a freeform technique. That is, the design engineer can place dimension annotations anywhere within the drawing by moving (e.g., dragging) the dimension indicia (e.g., dimension annotation text or leader line) using a cursor-controlled I/O device, such as a mouse. However, the design engineer should comply with a defined standard. The defined standard governs the offset distances of the dimension lines, on which side of an edge the dimension annotation should be placed, and the angle of a leader (if applicable). Typically in a 2D drawing that complies to a predefined standard, when a dimension is being added to a model, there are predetermined limited logical locations the dimension indicia can be placed. Moreover, design engineers need to select a location where leader lines and text do not overlap. Although sometimes leader lines do need to overlap for lack of space, the text should never overlap. Furthermore, the design engineer often has to manually lineup dimension indicia of one dimension annotation with dimension indicia of other dimension annotations to create a legible and aesthetically pleasing drawing. As more dimensions are added, the area available to place subsequent dimension annotations is reduced, especially since the dimensions already placed are fixed until the design engineer manually changes them.
In U.S. Pat. No. 5,999,186 by Geoff Jackson and assigned to 3-Design LLC of Jackson, Miss., Jackson describes a CAD system with improved means for defining, representing, and modifying dimensions of an object. The user specifies dimension entities that describe components of the entire CAD object. For each dimension entity, the user enters a reference origin having a direction, in addition to normal dimension information. Each dimension entity has a dimension line, a leader line of the dimension line, the text that conveys the value of the dimension line, and coordinate data indicating where the dimension information should be placed. Jackson groups related dimension entities and forms chains of dimension entities based on reference origin. Chained dimension entities and their associated objects are quickly and uniformly modified by a single user command using a parametric dimensioning technique that sequentially recalculates coordinate data of dimension entities in a selected chain (e.g., one having a modified dimension). A drawback of Jackson is the added dimension information that a user is required to input for each drawing entity (e.g., lines, shapes, etc.) of the CAD object.
Some commercially available CAD systems aid in the placement of dimension annotations/indicia. A technique for aiding in the placement of dimension indicia is described by Kurt Phillip Chase, Cummings Jones, and Valerie Taylor in U.S. Pat. No. 6,232,985 assigned to Autodesk, Inc. of San Rafael, Calif. Chase et al describe how the design engineer indicates the position of the dimension line using a mouse or a keyboard, for example. Thus, Chase et al teaches that user intervention is typically employed to locate the dimension indicia (e.g., dimension line).
In U.S. Pat. No. 7,039,569 to Richard Haws and Robert Nicolucci, Haws et al describe a dynamic dimensioning CAD program in which dimension annotations (indicia) are automatically (system) generated and associated with the subject object as the user draws the object. Thereafter, the dimension annotations are adaptive. For example, the system automatically updates the dimension annotations in response to the user changing length of the object and vice versa (i.e., if the user changes the dimension annotation, the system updates the object dimension). The system automatically trims or extends dimension annotations in response to a change in size or position of the associated target object. Positions of dimension annotations for a previous object are automatically shifted to accommodate a newly entered object. Disadvantageously, the user must enter dimension text, dimension lines, and relative positions of objects, as well as specify interposition dimensions or segment lengths in the dimension annotations.
Thus, drawbacks of current state of the art systems include the necessity of moving a cursor (e.g., via a cursor-control I/O device) to a desired location in order to place a dimension annotation or dimension indicia, the need to manually rearrange existing dimension indicia to accommodate a new dimension annotation, and not offering a design engineer choices of logical locations to place a dimension annotation. Additionally, dimensioning a small area of a complex drawing may require alternating between zooming into a drawing view, picking entities, zooming out of the drawing view, and placing the dimension indicia, which is also a tedious process. A system or method that addresses these and other drawbacks would greatly enhance current state-of-the-art computerized systems by allowing dimension annotations to be placed more quickly and in a more efficient manner.